Connessione a MySQL.
Prima di iniziare a lavorare con il PHP
abbiamo eseguito l'installazione del server Apache, del compilatore PHP ma
soprattutto del MySQL che altro non è che il software, a linea di comando, che
permette l'interfaccia con l'omonimo tipo di database; abbiamo anche creato un
database d'esempio (chiamato "testDB", se ricordate) ed abbiamo effettuato le
prime interrogazioni (query) di prova.
Adesso inizieremo a lavorare con i database con privilegi che in fase di prova
non avevamo; fino a questo momento abbiamo lavorato come utente di tipo "anonymous"
ed adesso invece creeremo un utente con la sua password: apriamo il prompt
dei comandi ed avviamo MySQL Monitor tramite la seguente sequenza:
Al prompt digitiamo cd\ in modo da tornare al semplice prompt c:/>
entriamo nelle cartelle del MySQL digitando consecutivamente cd mysql e cd bin.
quindi al nuovo prompt, c:/mysql/bin>, avviamo in background il processo MySQL tramite il comando mysqld --standalone, come mostrato in figura sotto.
A questo punto la maggior parte dei prompt sembra non dare alcuna risposta in quanto, dopo aver premuto il tasto Invio, rimane il semplice cursore lampeggiante ma non ci si deve preoccupare in quanto MySQL è stato avviato, infatti basta semplicemente guardare la barra del titolo (la striscia azzurra in alto, per intenderci) per vedere il nostro comando già caricato. A questo punto per riottenere il prompt dei comandi, basta chiuderlo, riaprirlo e rientrare nelle cartelle del MySQL. Successivamente avviamo MySQL Monitor tramite l'istruzione mysql e possiamo verificare il corretto avvio dello stesso (altrimenti impossibile).
Il prompt, come visto in fase di installazione e verifica del MySQL, è diventato mysql>. Adesso possiamo crearci il nostro profilo utente con la nostra password tramite la seguente query SQL; per prima cosa cambiamo il database a cui fa riferimento inizialmente MySQL con il comando:
use mysql;
secondo la figura sotto riportata.
quindi inseriamo la seguente stringa inserendo al posto di mionome e miapassword i nostri valori personali. Attenzione a ricordare sempre questi dati in quanto, come vedremo successivamente, ci consentiranno l'accesso esclusivo al database tramite PHP.
insert into user (host, user, password) values ('localhost', 'mionome', password('miapassword'));
ed attendiamo conferma che la query è stata accettata, come in figura sotto.
Come potete notare, specie chi ha una certa dimestichezza con SQL, abbiamo dato il comando di creare dentro il database di nome user, che già possiede le tabelle host, user e password, un nuovo profilo all'interno del nostro server, localhost, di nome pippo e con password denominata pluto. Naturalmente non credo ci sia bisogno di ricordare che questi ultimi due sono personalizzabili.
Una volta ricevuta conferma dell'avvenuta creazione (Query OK) del profilo usciamo da MySQL Monitor con il comando exit;
quindi eseguiamo il comando mysqladmin flush-privileges per caricare la tabella dei privilegi del programma mysqladmin. Adesso il nuovo utente creato avrà accesso a tutti i database ed a tutte le tabelle, a patto che specifichi la propria password.
Passiamo adesso alla connessione SQL tramite script in PHP. Apriamo il nostro Blocco Note e scriviamo il seguente script:
<?
$connessione = mysql_connect("localhost", "pippo", "pluto")
or die("Impossibile stabilire una connessione");
if ($connessione)
{ $msg = "Connessione
riuscita!"; }
?>
<html><head><title>Connessione a MySQL</title></head>
<body>
<? echo "$msg"; ?>
</body>
</html>
Come al solito salviamo il nostro script,
con il nome di connessione.php, nella directory del server ed
avviamolo dal browser con il comando http://localhost/connessione.php. Se il
tutto è stato eseguito correttamente, specie per quanto riguarda la creazione
dell'utente e la sintassi nella variabile $connessione, dovrebbe apparire il
messaggio in $msg.
Analizzando lo script notiamo il comando mysql_connect che ci consente la
connessione MySQL tramite il PHP, lo stesso è utilizzato tramite la variabile
$connessione che restituisce il valore booleano true in caso di
avvenuta connessione, in caso contrario, come per molti dei comandi finora
visti, viene eseguito la procedura die che blocca l'esecuzione dello script e manda in uscita la
stringa dichiarata al suo interno. Successivamente abbiamo inserito la
condizione if per verificare l'avvenuta connessione ed, in caso affermativo,
carichiamo la variabile $msg del messaggio di conferma; quindi, chiuso lo
script, con codice HTML, mandiamo in uscita il suddetto messaggio.